The present invention relates to an electronic musical instrument and an effector capable of imparting a desired effect to a tone signal.
The present invention also relates to signal processing, and more particularly to a signal processor for performing tone generation and tone signal processing which permits efficient use of memory, dynamic selection of a program and dynamic allocation of memory.
Conventionally known electronic musical instruments containing an effector (effect imparting device) are designed to generate tones after imparting one or more effects per tone color. For example, in those instruments using a so-called multi-timbre tone source to produce plural tone colors, one or more effects are imparted for each tone color.
However, although the known electronic musical instruments could impart a different effect for each tone color, they were unable to vary the effect imparting mode of a same tone color in response to variations in key-on or key-off event occurrence timing and in key velocity value. The prior instruments could not vary effect imparting timing separately for each tone generation channel in response to variations in key-on or key-off event occurrence timing, nor could they control an effect imparting parameter separately for each tone generation channel in response to variations in key velocity value.
Digital signal processors (hereinafter referred as DSPs) have conventionally been employed to impart various effects to sounds or tones or generate sounds or tones. Recently, it is common for such DSPs to perform plural processes within one sampling period. Further, in view of the fact that great advancement in LSI technology has made it possible for today's DSPs to perform large-scale signal processing and has considerably increased the amount of program processable per sampling period, there is a great demand today for an improved DSP which, rather than merely performing complex processing can appropriately use any of plural different programs according to the circumstances.
Further, the following problems exist with a delay memory that is employed to delay data to be utilized by a program.
Where plural processes are to be performed within one sampling period, there must be provided in the delay memory plural storage areas to be used for each of the plural processes. These areas are ordinarily fixed in position and size in the delay memory. However, the areas are fixedly set taking the greatest possible data amount into consideration. Many portions of the areas are actually not used, and thus efficient use of the memory was not achieved in the prior art. For example, there is an effector called a "delay effector" for imparting a time delay to an input signal in accordance with a delay amount parameter which is typically variable over a range of 0.1 to 5,000 ms. For impartment of such a delay effect, it was conventional to allocate memory areas corresponding to the greatest possible delay amount of 5,000 ms. However, the greatest delay amount was rarely set. Very often, much smaller delay amounts were actually used. Consequently, most parts of the allocated memory areas were wastefully left unused.
Of the plural processes, some may not use particular memory areas at all, while others may have to use almost every memory area. Also, it is possible that the delay time varies with the frequency of the tone to be generated. Even in such a case, however, a fixed quantity of memory areas was traditionally allocated irrespective of the frequency, and thus some memory areas allocated were undesirably wasted.